const express = require('express')
const router = express.Router()
const { query } = require('../db')
// 添加路由
// 新增医院(post /)
router.post('/', async (req,res,next) => {
  // 获取post传递的参数
  const obj = req.body
  console.log(obj)
  let code = 400
  for(let k in obj) {
    code++
    if(!obj[k]) {
      return res.send({
        code,
        msg: `${k}不能为空`
      })
    }
  }
  // 执行SQL命令
  try {
    var data = await query('insert into hs_hospital set ?',[obj])
  } catch(err) {
    return next(err)
  }
  console.log(data)
  res.send({
    code: 200,
    msg: '医院新增成功'
  })
})
// 修改医院(put /)
router.put('/', async (req,res,next) => {
  // 获取post传递的参数
  const obj = req.body
  console.log(obj)
  let code = 400
  for(let k in obj) {
    code++
    if(!obj[k]) {
      return res.send({
        code,
        msg: `${k}不能为空`
      })
    }
  }
  // 执行SQL命令
  try {
    var data = await query('update hs_hospital set ? where id=?',[obj,obj.id])
  } catch(err) {
    return next(err)
  }
  console.log(data)
  if(data.changedRows === 0) {
    res.send({
      code: 410,
      msg: '医院修改失败'
    })
  } else {
    res.send({
      code: 200,
      msg: '医院修改成功'
    })
  }
})
// 删除医院(delete /)
router.delete('/', async (req,res,next) =>{
  // 获取get传递的参数
  const { id } = req.query
  if(!id) {
    return res.send({
      code: 401,
      msg: 'id不能为空'
    })
  }
  // 执行SQL命令
  try {
    var data = await query('delete from hs_hospital where id=?',[id])
  } catch(err) {
    return next(err)
  }
  console.log(data)
  if(data.affectedRows === 0) {
    res.send({
      code: 410,
      msg: '医院删除失败'
    })
  } else {
    res.send({
      code: 200,
      msg: '医院删除成功'
    })
  }
})
// 医院列表(get /)
router.get('/', async (req,res,next) => {
  // 获取get传递的参数
  const obj = req.query
  console.log(obj)
  const page = 10
  // 如果医院名称和等级都存在
  // 如果医院名称存在
  // 如果医院等级存在
  let str = ''
  if(obj.title && obj.level) {
    str = `where title like '%${obj.title}%' && level='${obj.level}'`
  } else if(obj.title) {
    str = `where title like '%${obj.title}%'`
  } else if(obj.level) {
    str = `where level='${obj.level}'`
  }
  // 如果页码为空
  if(!obj.pno) {
    obj.pno = 1
  }
  // 计算出开始查询的值
  let start = (obj.pno - 1) * page
  // 执行SQL命令
  try {
    var data = await query(`select * from hs_hospital ${str} order by id desc limit ${start},${page};select count(*) n from hs_hospital ${str}`)
  } catch(err) {
    return next(err)
  }
  console.log(data)
  res.send({
    code: 200,
    msg: '医院列表',
    data: data[0],
    total: data[1][0].n,
    pno: obj.pno
  })
})

// 暴露
module.exports = router